//
//  06_11.c
//  tasks
//
//  Created by Daniel on 2024/6/11.
//

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <math.h>

//int main()
//{
//    int arr1[] = {1,2,3,4,5,6,7,8,9,10};
//    int arr2[20] = {0};
//    memcpy(arr2,arr1,20);
//    for(int i = 0; i < 5; i++)
//    {
//        printf("%d ",arr2[i]);
//    }
//    printf("\n");
//    return 0;
//}

//自己写
//void* my_memcpy(void* dest,void* src,size_t num)
//{
//    assert(dest && src);
//    void* res = dest;
//    while(num--)
//    {
//        *(char*)dest = *(char*)src;
//        dest = (char*)dest + 1;
//        src = (char*)src + 1;
//    }
//    return res;
//}
//
//int main()
//{
//    int arr1[] = {1,2,3,4,5,6,7,8,9,10};
//    int arr2[20] = {0};
//    my_memcpy(arr2,arr1,20);
//    for(int i = 0; i < 5; i++)
//    {
//        printf("%d ",arr2[i]);
//    }
//    printf("\n");
//    return 0;
//}

//从后往前拷贝
//void* my_memcpy(void* dest,void* src,size_t num)
//{
//    assert(dest && src);
//    void* res = dest;
//    while(num--)
//    {
//        *((char*)dest+num) = *((char*)src+num);
//    }
//    return res;
//}

//int main()
//{
//    int arr1[] = {1,2,3,4,5};
//    int arr2[20] = {1,3,2};
//    int ret = memcmp(arr1, arr2, 12);
//    printf("%d\n",ret);
//    return 0;
//}

//int main()
//{
//    char arr[] = "hello bit";
////    memset(arr,'x',5);//xxxxx bit
//    memset(arr+6,'x',3);//hello xxx
//    printf("%s\n",arr);
//    return 0;
//}

//int main()
//{
//    int input = 0;
//    int sum = 0;
//    scanf("%d",&input);
//    int i = 0;
//    while (input) {
//        int bit = input % 10;
//        sum += (bit % 2)*pow(10,i);
//        i++;
//        input /= 10;
//    }
//    printf("%d\n",sum);
//    return 0;
//}

//int main()
//{
//    int n = 0;
//    while (scanf("%d",&n))
//    {
//        for(int i = 0; i < n; i++)
//        {
//            for(int j = 0; j < n; j++)
//            {
//                if(i+j<n-1)
//                {
//                    printf("  ");
//                }
//                else
//                {
//                    printf("* ");
//                }
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}

//int main()
//{
//    double price = 0.00;
//    int month = 0;
//    int day = 0;
//    int flag = 0;
//    scanf("%lf %d %d %d",&price,&month,&day,&flag);
//    if(month==11 && day==11)
//        price = price*0.7 -flag*50;
//    else if (month==12 && day==12)
//        price = price*0.7 -flag*50;
//    if(price<0.0)
//        printf("%.2d\n",0);
//    else
//        printf("%.2lf\n",price);
//    return 0;
//}


//int main()
//{
//    for(int a = 0; a < 5; a++)
//    {
//        for(int b = 0; b <= 5; b++)
//        {
//            for(int c = 0; c <= 5; c++)
//            {
//                for(int d = 0; d <= 5; d++)
//                {
//                    for(int e = 0; e <= 5; e++)
//                    {
//                        if ((b==2)+(a==3)==1
//                          &&(b==2)+(e==4)==1
//                          &&(c==1)+(d==2)==1
//                          &&(c==5)+(d==3)==1
//                          &&(e==4)+(a==1)==1)
//                        {
//                            if(a+b+c+d+e==15 && a*b*c*d*e==120)
//                                printf("a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
//                        }
//                    }
//                }
//            }
//        }
//    }
//    return 0;
//}


//int main()
//{
//    int killer = 0;
//    for(int killer='a'; killer < 'd'; killer++)
//    {
//        if((killer != 'a')+(killer == 'c')+(killer == 'd')+(killer != 'd') == 3)
//            printf("%c\n",killer);
//    }
//    return 0;
//}
int main()
{
    int arr[10][10] = {0};
    for(int i = 0; i < 10; i++)
    {
        for (int j = 0; j <= i; j++) {
            if(j == 0)
            {
                arr[i][j] = 1;
            }
            if(i == j)
            {
                arr[i][j] = 1;
            }
            if(i>=2 && j >= 1)
            {
                arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
            }
        }
    }
    for(int i = 0; i < 10; i++)
    {
        for (int j = 0; j < i; j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
